perm filename SEER4.SAI[4,ALS] blob sn#052863 filedate 1973-07-09 generic text, type T, neo UTF8
00010	BEGIN "SEE"
00020	DEFINE ⊂="COMMENT";	⊂ 7,2,73;
00030	
00040	⊂	This program analyses RES.DAT and USE.DAT tables
00050	           and reports on their contents;
00060	
00070	DEFINE TABSIZ="256",TABNUM="16";
00080	DEFINE CR="'15",LF="'12",TB="'11",CRLF="CR&LF";
00090	REQUIRE "BLOCKS.HDR" SOURCE_FILE;
00100	INTEGER CHAN1,CHAN2,CHAN3,EOF,MAX,ZEROC;
00110	INTEGER ARRAY RES,LRN[0:TABSIZ];
00120	INTEGER X1,X2,X3,X4,S1,S2,S3,S4,S1F,S2F,S3F,S4F,I,J,K,
00130	        S1T,S2T,S3T,S4T,OLD,NEW,SUM,F1,F2,F3,F4,T1,T2,T3,T4;
00135	STRING READ1,READ2;
00140	
00150	HEADIN;
00160	CHAN1←1; CHAN2←2; CHAN3←3;
00170	CLOSE(CHAN1); OPEN(CHAN1,"DSK",'10,10,0,0,0,EOF);
00180	LOOKUP(CHAN1,"LRN.DAT",0);
00190	CLOSE(CHAN2); OPEN(CHAN2,"DSK",'10,10,0,0,0,EOF);
00200	LOOKUP(CHAN2,"RES.DAT",0);
00210	
00220	OPEN(CHAN3,"DSK",0,0,10,0,0,EOF);
00230	ENTER(CHAN3,"SEESUM.DOC",0);
00231	OUT(CHAN3,TB&"SIGNATURE TABLE SUMMARY as of "&DATIME&CRLF&LF);
00233	
00234	 OUT(CHAN3,CRLF&"The following tables exist"&CRLF);
00235	OUT(CHAN3,"Name"&TB&"Parent"&TB&"OUT1"&TB&"OUT2"&TB&"OUT3"&TB&"OUT4"&
00236	     TB&"IN1"&TB&"IN2"&TB&"IN3"&TB&"IN4"&CRLF);
00237	FOR I←0 STEP 1 UNTIL TABNUM DO BEGIN
00238	 IF NAMES[I]=0 THEN DONE;
00239	 J←(IN1[I] LAND '77);K←(IN2[I] LAND '77);
00240	 IF (IN3[I]=0) THEN READ1←"        " 
00241	   ELSE READ1←CVXSTR(INNAM[IN3[I] LAND '77]);
00242	 IF (IN4[I]=0) THEN READ2←"        " ELSE
00243	   READ2←CVXSTR(INNAM[IN4[I] LAND '77]);
00244	 OUT(CHAN3,CVXSTR(NAMES[I])&TB&CVXSTR(PARENN[I])&TB&
00245	  CVXSTR(OUT1[I])&TB&CVXSTR(OUT2[I])&TB&CVXSTR(OUT3[I])&
00246	  TB&CVXSTR(OUT4[I])&TB&CVXSTR(INNAM[J])&TB&CVXSTR(INNAM[K])&TB
00247	  &READ1&TB&READ2&CRLF); END; OUT(CHAN3,LF);
00248	
00250	OUT(CHAN3,CRLF&"Name"&TB&"Out1  Find Tare Total   Out2  "&
00260	"Find Tare Total   Out3  Find Tare Total   Out4  "&
00280	"Find Tare Total   Max."&TB&"Zeros"&CRLF&LF);
00290	
00300	FOR I←0 STEP 1 UNTIL TABNUM DO BEGIN
00310	  IF NAMES[I]=0 THEN DONE;
00320	  ARRYIN(CHAN1,LRN[0],TABSIZ);
00330	  ARRYIN(CHAN2,RES[0],TABSIZ);
00340	  S1←S2←S3←S4←S1F←S2F←0; S3F←S4F←S1T←S2T←S3T←S4T←0;
00350	  X1←X2←X3←X4←MAX←ZEROC←0;
00360	  FOR J←0 STEP 1 UNTIL 255 DO BEGIN
00370	    OLD←LDB(POINT(9,RES[J],8)); NEW←LDB(POINT(9,LRN[J],8));
00380	    X1←(OLD LSH 5)+NEW; S1←S1+X1;
00390	    OLD←LDB(POINT(9,RES[J],17)); NEW←LDB(POINT(9,LRN[J],17));
00400	    X2←(OLD LSH 5)+NEW;S2←S2+X2;
00410	    OLD←LDB(POINT(9,RES[J],26)); NEW←LDB(POINT(9,LRN[J],26));
00420	    X3←(OLD LSH 5)+NEW; S3←S3+X3;
00430	    OLD←LDB(POINT(9,RES[J],35)); NEW←LDB(POINT(9,LRN[J],35));
00440	    X4←(OLD LSH 5)+NEW; S4←S4+X4;
00450	
00451	
00452	    K←X1+X2+X3+X4;IF K=0 THEN ZEROC←ZEROC+1;IF K>MAX THEN MAX←K;
00453	
00460	    IF X1>X2 THEN BEGIN "X1X2"
00470	       IF X1>X3 THEN IF X1>X4 THEN BEGIN
00480	          S1F←S1F+X1; S1T←S1T+X2+X3+X4; END ELSE BEGIN
00490	          S4F←S4F+X4; S4T←S4T+X1+X3+X4;END;
00500	       IF X3≥X1 THEN IF X3>X4 THEN BEGIN
00510	          S3F←S3F+X3; S3T←S3T+S1+S2+S4; END ELSE BEGIN
00520	          S4F←S4F+X4; S4T←S4T+X1+X2+X3; END; END "X1X2";
00530	    IF X2≥X1 THEN BEGIN "X2X1"
00540	       IF X2>X3 THEN IF X2>X4 THEN BEGIN
00550	          S2F←S2F+X2; S2T←S2T+X1+X3+X4; END ELSE BEGIN
00560	          S4F←S4F+X4; S4T←S4T+X1+X2+X3; END;
00570	       IF X3≥X2 THEN IF X3>X4 THEN BEGIN
00580	          S3F←S3F+X3; S3T←S3T+X1+X2+X4; END ELSE BEGIN
00590	          S4F←S4F+X4; S4T←S4T+X1+X2+X3; END; END "X2X1";
00600	  END;
00610	  F1←(S1F*100)/S1; F2←(S2F*100)/S2; F3←(S3F*100)/S3; F4←(S4F*100)/S4;
00620	  T1←(S1T*100)/(S1F+S1T); T2←(S2T*100)/(S2F+S2T);
00630	  T3←(S3T*100)/(S3F+S3T); T4←(S4T*100)/(S4F+S4T);
00640	
00645	SETFORMAT(2,0);
00650	OUT(CHAN3,CVXSTR(NAMES[I])&TB&
00660	          CVXSTR(OUT1[I])&TB&CVS(F1)&"  "&CVS(T1));
00662	SETFORMAT(7,0); OUT(CHAN3,CVS(S1)&TB); SETFORMAT(2,0);
00670	OUT(CHAN3,CVXSTR(OUT2[I])&TB&CVS(F2)&"  "&CVS(T2));
00672	SETFORMAT(7,0); OUT(CHAN3,CVS(S2)&TB); SETFORMAT(2,0);
00676	IF OUT3[I]=0 THEN OUT(CHAN3,TB&"             "&TB) ELSE BEGIN
00680	OUT(CHAN3,CVXSTR(OUT3[I])&TB&CVS(F3)&"  "&CVS(T3));
00682	SETFORMAT(7,0); OUT(CHAN3,CVS(S3)&TB); SETFORMAT(2,0); END;
00685	IF OUT4[I]=0 THEN OUT(CHAN3,TB&"             "&TB) ELSE BEGIN
00688	OUT(CHAN3,CVXSTR(OUT4[I])&TB&CVS(F4)&"  "&CVS(T4));
00690	SETFORMAT(7,0); OUT(CHAN3,CVS(S4)&TB); END;
00691	SETFORMAT(4,0);
00695	OUT(CHAN3,CVS(MAX)&TB&CVS(ZEROC)&CRLF);
00700	END;
00710	CLOSE(CHAN3); CLOSE(CHAN1); CLOSE(CHAN2); RELEASE(CHAN3);
00720	COMMENT SPOOL("SEESUM.DOC",GETCHAN,1);
00730	OUTSTR("Output sent to spooler as SEESUM.DOC"&CRLF);
00740	
00750	END "SEE";